<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>正規表現で入れ子の括弧を検索する方法を教えて下さい | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀一般トップへ</a>
        <li><div class="list-title">
    <span class="no">3742</span>
    <a class="thread-title" href="3742.html#3742">正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3743</span>
    <a class="thread-title" href="3742.html#3743">Re:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3744</span>
    <a class="thread-title" href="3742.html#3744">Re2:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    </li><li><div class="list-title">
    <span class="no">3748</span>
    <a class="thread-title" href="3742.html#3748">Re2:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3749</span>
    <a class="thread-title" href="3742.html#3749">Re3:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3750</span>
    <a class="thread-title" href="3742.html#3750">Re4:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3757</span>
    <a class="thread-title" href="3742.html#3757">お礼：できました。m(__)m</a></div>
    </li><li><div class="list-title">
    <span class="no">3780</span>
    <a class="thread-title" href="3742.html#3780">すいさんへ:転載許可依頼</a></div>
    <ul><li><div class="list-title">
    <span class="no">3783</span>
    <a class="thread-title" href="3742.html#3783">RE: すいさんへ:転載許可依頼</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">3752</span>
    <a class="thread-title" href="3742.html#3752">Re:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3754</span>
    <a class="thread-title" href="3742.html#3754">Re2:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3755</span>
    <a class="thread-title" href="3742.html#3755">Re3:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    <ul><li><div class="list-title">
    <span class="no">3760</span>
    <a class="thread-title" href="3742.html#3760">お礼:F4に割り当てたら快適です</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">3758</span>
    <a class="thread-title" href="3742.html#3758">Re3:正規表現で入れ子の括弧を検索する方法を教えて下さい</a></div>
    </li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=3742>
    <span class="no">[3742]</span>
    <a class="thread-title" href="#3742">正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">渡辺真</span>
    <time datetime="2004-04-03T08:25:40">2004年04月03日 08:25</time></h1>
    <div class="body">この掲示版で恐縮ですが、お教え下さい。<br><br>入れ子の括弧、例えば下記が有ります。<br><br>&lt;!-- &lt;hr&gt; --&gt;<br><br>これを正規表現、&lt;[^&gt;]*&gt;で検索をかけると、対応しない括弧の範囲が検索されてしまいます。<br><br>正しく、内側の括弧の範囲や、外側の括弧の範囲、を検索する方法をお教え下さい。</div></section>
    <ul><li><section><h1 id=3743>
    <span class="no">[3743]</span>
    <a class="thread-title" href="#3743">Re:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">じゅうじ</span>
    <time datetime="2004-04-04T00:01:35">2004年04月04日 00:01</time></h1>
    <div class="body">▼ 渡辺真さん<br>&lt;!--.*?--&gt;|&lt;.*?&gt;<br>でどうでしょうか。<br><br>目次<br>　+サクラエディタ概要<br>　　+正規表現ライブラリについて<br></div></section>
    <ul><li><section><h1 id=3744>
    <span class="no">[3744]</span>
    <a class="thread-title" href="#3744">Re2:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">げんた</span>
    <time datetime="2004-04-04T01:11:06">2004年04月04日 01:11</time></h1>
    <div class="body">&gt;&lt;!--.*?--&gt;|&lt;.*?&gt;<br>&gt;でどうでしょうか。<br>そうか．*? なんてのも使えたんですね．<br></div></section>
    </li><li><section><h1 id=3748>
    <span class="no">[3748]</span>
    <a class="thread-title" href="#3748">Re2:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">渡辺真</span>
    <time datetime="2004-04-04T08:43:48">2004年04月04日 08:43</time></h1>
    <div class="body">▼ じゅうじさん<br>&gt; &lt;!--.*?--&gt;|&lt;.*?&gt;<br>&gt; でどうでしょうか。<br><br>早速回答、有難うございました。<br><br>すみません。(私の質問の仕方(しかた)が舌足らずでした。)<br><br>上記のような、!--などの特長の無い、一般的な入れ子括弧の場合は、<br><br>\(.*?\)<br><br>だと、対応しない括弧の範囲が検索されてしまいます。<br><br>内側の括弧の範囲や、外側の括弧の範囲、を検索するにはどうすればよいでしょうか？<br><br>よろしくお願いいたします。<br><br>m(__)m<br></div></section>
    <ul><li><section><h1 id=3749>
    <span class="no">[3749]</span>
    <a class="thread-title" href="#3749">Re3:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">すい</span>
    <time datetime="2004-04-04T09:24:13">2004年04月04日 09:24</time></h1>
    <div class="body">&gt;上記のような、!--などの特長の無い、一般的な入れ子括弧の場合は、<br>&gt;<br>&gt;\(.*?\)<br>&gt;<br>&gt;だと、対応しない括弧の範囲が検索されてしまいます。<br>&gt;<br>&gt;内側の括弧の範囲や、外側の括弧の範囲、を検索するにはどうすればよいでしょうか？<br><br>&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*[^&lt;&gt;]*&gt;<br>とかだろな。<br><br>(～) で括ると、その中身を１個としてまとめて取り扱えます。<br>その (～) の記述に「0個以上」の意味の * を付けて<br>(～)* で「～に該当するパターンが０個以上ある」という<br>非常によくあるパターン使っているだけです。<br><br>ただし、この記述のままだと２重の入れ子まで。<br>つまり<br>&lt;　　&lt;　　&gt;　　&lt;　　&gt;　　&gt;<br>なんかならOKですが、<br>&lt;　　&lt;　&lt;　&gt;　&gt;　　&gt;<br>みたいに３重は無理です。<br><br>あと<br>&lt;　|　&lt;　　&gt;　　&lt;　　&gt;　　&gt;<br>で | の位置にカーソルを移動してからこのパターンで検索すれば、<br>内側の括弧だけにマッチしてくれます。<br>検索一致箇所の色分け表示は外側の括弧全体になりますが。<br></div></section>
    <ul><li><section><h1 id=3750>
    <span class="no">[3750]</span>
    <a class="thread-title" href="#3750">Re4:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">すい</span>
    <time datetime="2004-04-04T10:03:04">2004年04月04日 10:03</time></h1>
    <div class="body">解説追加<br><br>↓まず、基本パターン<br>&lt;[^&lt;&gt;]*&gt;<br>これで対応する括弧だけにマッチしますね。<br>ただしこの記述では入れ子には全く対応していません。<br><br>入れ子に対応するための準備として<br>&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;<br>と変更します。（まだ入れ子非対応。当然、この記述でも対応する括弧にはマッチしますが。）<br><br>で、↑上記の [^&lt;&gt;]* と [^&lt;&gt;]* の間に<br>(&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*<br>という、「（ 対応する括弧の組み合わせ＋括弧とは無関係な 0字以上の文字列 ）が 0回以上繰り返される」<br>の記述を挿入。↓<br>&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*[^&lt;&gt;]*&gt;<br><br>↑これで２重の括弧に対応。<br><br>さらに↑上記の [^&lt;&gt;]* と [^&lt;&gt;]* の間に<br>(&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*<br>という、「（ 対応する括弧の組み合わせ＋括弧とは無関係な 0字以上の文字列 ）が 0回以上繰り返される」<br>の記述を挿入。↓<br>&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*[^<br>&lt;&gt;]*&gt;[^&lt;&gt;]*)*[^&lt;&gt;]*&gt;<br><br>↑これで３重の括弧に対応。<br><br>さらに↑上記の [^&lt;&gt;]* と [^&lt;&gt;]* の間に<br>(&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*<br>という、「（ 対応する括弧の組み合わせ＋括弧とは無関係な 0字以上の文字列 ）が 0回以上繰り返される」<br>の記述を挿入。↓<br>&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*(&lt;[^&lt;&gt;]*[^&lt;&gt;]*&gt;[^<br>&lt;&gt;]*)*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*[^&lt;&gt;]*&gt;[^&lt;&gt;]*)*[^&lt;&gt;<br>]*&gt;<br><br>↑これで4重の括弧に対応。<br><br>さらに↑上記の [^&lt;&gt;]* と [^&lt;&gt;]* の間に．．．<br>＜以下繰り返し＞<br><br>入れ子を増やすために記述がどんどん長くなってしまうのですよね、これじゃ。<br>もっと良い記述方法がありそうな気もするんですけど．．．<br>思い付かなかったので。。。<br></div></section>
    <ul><li><section><h1 id=3757>
    <span class="no">[3757]</span>
    <a class="thread-title" href="#3757">お礼：できました。m(__)m</a>
    <span class="author">渡辺真</span>
    <time datetime="2004-04-04T16:51:33">2004年04月04日 16:51</time></h1>
    <div class="body">▼ すいさん<br>&gt; 解説追加<br><br>ご親切な解説まで有難うございました。<br><br>\([^\(\)]*(\([^\(\)]*(\([^\(\)]*[^\(\)]*<br>\)[^\(\)]*)*[^\(\)]*\)[^\(\)]*)*[^\(\)]*<br>\)<br><br>で、下記の検索ができました。<br><br>(先の書き込みの(特長(とくちょう))は(特徴)の誤記でした。(^_^;))<br></div></section>
    </li><li><section><h1 id=3780>
    <span class="no">[3780]</span>
    <a class="thread-title" href="#3780">すいさんへ:転載許可依頼</a>
    <span class="author">渡辺真</span>
    <time datetime="2004-04-07T20:35:14">2004年04月07日 20:35</time></h1>
    <div class="body">すいさんの「解説」などを、私のホームページの、「正規表現の事例」として、転載させていただきたく、お願いいたします。<br><br>今後ともよろしくお願いいたします。</div></section>
    <ul><li><section><h1 id=3783>
    <span class="no">[3783]</span>
    <a class="thread-title" href="#3783">RE: すいさんへ:転載許可依頼</a>
    <span class="author">すい</span>
    <time datetime="2004-04-08T01:39:19">2004年04月08日 01:39</time></h1>
    <div class="body">&gt;すいさんの「解説」などを、私のホームページの、「正規表現の事例」として、転載させていただきたく、お願いいたします。<br>&gt;<br>&gt;今後ともよろしくお願いいたします。<br><br>この掲示板内の私の発言でしたら全て御自由にどうぞ。 (*^^*)/<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li><li><section><h1 id=3752>
    <span class="no">[3752]</span>
    <a class="thread-title" href="#3752">Re:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">しみづ</span>
    <time datetime="2004-04-04T11:51:06">2004年04月04日 11:51</time></h1>
    <div class="body"><br>&gt;正しく、内側の括弧の範囲や、外側の括弧の範囲、を検索する方法をお教え下さい。<br><br>　「検索」という言葉が、選択されるという意味でしたら、マクロ会議室にあるマクロ、例えば私の【brasel.js】が動く環境でしたら、改造すれば現在のカーソル以降にある、最初の&lt;と対応する&gt;の間を選択させることはできそうな気がしますけど。<br></div></section>
    <ul><li><section><h1 id=3754>
    <span class="no">[3754]</span>
    <a class="thread-title" href="#3754">Re2:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">すい</span>
    <time datetime="2004-04-04T15:07:29">2004年04月04日 15:07</time></h1>
    <div class="body">&gt;　「検索」という言葉が、選択されるという意味でしたら、マクロ会議室にあるマクロ、例えば私の【brasel.js】が動く環境でしたら、改造すれば現在のカーソル以降にある、最初の&lt;と対応する&gt;の間を選択させることはできそうな気がしますけど。<br><br>単純に「カーソル位置以降の括弧を選択出来れば OK かつマクロで OK」なら<br>WSH なんて必要ないんじゃかと。<br><br>キーボードマクロでこれだけ。<br># 検索マッチ文字列の色が鬱陶しいですけど。<br>-----<br>//キーボードマクロのファイル<br>// カーソル位置以降の &lt; ( { いずれかの括弧～それに対応する括弧までを選択する。<br><br>S_CancelMode(0);&#9;&#9;// 各種モードの取り消し - 選択状態を解除<br>S_SearchNext('[&lt;({]', 20);&#9;// 次を検索 - '&lt;' , '(' , '{' どれかを検索<br>S_Left(0);&#9;&#9;&#9;// カーソル左移動<br>S_BeginSelect(0);&#9;&#9;// 範囲選択開始<br>S_BracketPair(0);&#9;&#9;// 対括弧の検索<br>S_Right(0);&#9;&#9;&#9;// カーソル右移動<br>-----<br></div></section>
    <ul><li><section><h1 id=3755>
    <span class="no">[3755]</span>
    <a class="thread-title" href="#3755">Re3:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">すい</span>
    <time datetime="2004-04-04T15:21:25">2004年04月04日 15:21</time></h1>
    <div class="body">&gt;# 検索マッチ文字列の色が鬱陶しいですけど。<br>修正です。<br>こうすれば検索文字列の色表示も鬱陶しくは なくなりますね。<br>-----<br>//キーボードマクロのファイル<br>// カーソル位置以降の &lt; ( { いずれかの括弧～それに対応する括弧までを選択する。<br><br>S_SearchNext('[&lt;({]', 20);&#9;// 次を検索 - '&lt;' , '(' , '{' どれかを検索<br>S_CancelMode(0);&#9;&#9;// 各種モードの取り消し - 選択状態を解除<br>S_SearchClearMark(0);&#9;&#9;// 検索マークの切替え - 検索文字列の色分け表示を解除<br>S_BeginSelect(0);&#9;&#9;// 範囲選択開始<br>S_BracketPair(0);&#9;&#9;// 対括弧の検索<br>S_Right(0);&#9;&#9;&#9;// カーソル右移動<br>-----<br></div></section>
    <ul><li><section><h1 id=3760>
    <span class="no">[3760]</span>
    <a class="thread-title" href="#3760">お礼:F4に割り当てたら快適です</a>
    <span class="author">渡辺真</span>
    <time datetime="2004-04-04T20:41:19">2004年04月04日 20:41</time></h1>
    <div class="body">▼ すいさん<br>&gt; 修正です。<br><br>有難うございました。<br><br>下記のようにしてF4に割り当てたら、あらゆる「括弧」に、次々飛べるようになりました。<br><br>S_SearchNext('[\[&lt;({「『【《（［〔]', 20);    // 次を検索 - '[&lt;({「『【《（［〔' どれかを検索<br><br>m(__)m</div></section>
    </li></ul></li><li><section><h1 id=3758>
    <span class="no">[3758]</span>
    <a class="thread-title" href="#3758">Re3:正規表現で入れ子の括弧を検索する方法を教えて下さい</a>
    <span class="author">しみづ</span>
    <time datetime="2004-04-04T17:53:41">2004年04月04日 17:53</time></h1>
    <div class="body"><br>&gt;WSH なんて必要ないんじゃかと。<br><br>　「なんて」……。まあ、「などは」の言い間違いと善意に解釈しましょう。<br><br>&gt;S_SearchNext('[&lt;({]', 20);&#9;// 次を検索 - '&lt;' , '(' , '{' どれかを検索<br><br>　なるほど、そういうものもありましたか。勉強になりました。<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></body></html>